// ... existing code ...
import { appWindow, TrayHandle, Menu, event } from '@tauri-apps/api';

class TrayService {
    async init() {
        // 创建系统托盘菜单（Tauri 2.x需要使用Menu.build来创建菜单）
        const menu = await Menu.build([
            { label: '打开应用', id: 'open' },
            { type: 'separator' },
            { label: '退出应用', id: 'quit' }
        ]);

        // 创建系统托盘（Tauri 2.x推荐使用TrayHandle方式）
        const trayHandle = new TrayHandle({
            menu,
            title: '薄荷',
            icon: 'icons/icon.png'
        });
        await trayHandle.show();

        // 监听托盘菜单项点击事件（Tauri 2.x事件系统调整）
        trayHandle.onMenuItemClicked().listen((event) => {
            switch (event.itemId) {
                case 'open':
                    this.showWindow();
                    break;
                case 'quit':
                    this.quitApp();
                    break;
            }
        });

        // 监听托盘点击事件（Tauri 2.x事件名称变更）
        trayHandle.onTrayIconClicked().listen(() => {
            this.toggleWindow();
        });
    }

    async showWindow() {
        await appWindow.show();
        await appWindow.setFocus();
    }

    async hideWindow() {
        await appWindow.hide();
    }

    async toggleWindow() {
        if (await appWindow.isVisible()) {
            await this.hideWindow();
        } else {
            await this.showWindow();
        }
    }

    async quitApp() {
        // Tauri 2.x推荐使用appWindow.close()而非process.exit
        await appWindow.close();
    }
}

export default new TrayService();
